package com.ticket.system.domain;

import com.ticket.common.annotation.Excel;
import com.ticket.common.core.domain.BaseEntity;
import com.ticket.system.domain.vo.OrderDetailVo;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.data.annotation.Transient;

import java.math.BigDecimal;
import java.util.List;

/**
 * 出票退款单对象 yanchu_refund_backend_order
 * 
 * @author ruoyi
 * @date 2024-02-19
 */
public class YanchuRefundBackendOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private Long id;

    /** 订单id（关联yanchu_order表主键） */
    @Excel(name = "订单id", readConverterExp = "关=联yanchu_order表主键")
    private Long orderId;

    /** 售后类型 1：退票退款; */
    @Excel(name = "售后类型 1：退票退款;")
    private Integer refundType;

    /** 退款标识 1：整单退款；2：部分退款; */
    @Excel(name = "退款标识 1：整单退款；2：部分退款;")
    private Integer refundFlag;

    /** 退款单状态 0待退款 1：已退款 */
    @Excel(name = "退款单状态 0待退款 1：已退款")
    private Integer refundStatus;

    @Excel(name = "出票付款 1已付款 2欠款")
    private Integer refundOrderStatus;

    public Integer getRefundOrderStatus() {
        return refundOrderStatus;
    }

    public void setRefundOrderStatus(Integer refundOrderStatus) {
        this.refundOrderStatus = refundOrderStatus;
    }

    /** 退款总金额 */
    @Excel(name = "退款总金额")
    private BigDecimal refundTotalMoney;

    /** 退款原因 */
    @Excel(name = "退款原因")
    private String refundReason;

    /** 创建人 */
    @Excel(name = "创建人")
    private Long creator;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderNo;

    /** 退款方式 1对公转账2抖音支付 3微信支付 4现金 5其他 */
    @Excel(name = "退款方式 1对公转账2抖音支付 3微信支付 4现金 5其他")
    private Integer refundWay;

    /** 退款备注 */
    @Excel(name = "退款备注")
    private String refundDemo;

    @ApiModelProperty(value = "订单详情编码，逗号分隔",required = true)
    @Transient
    private String detailIds;

    @ApiModelProperty(value = "其他支付方式",required = true)
    private String refundPayName;

    @Transient
    private List<OrderDetailVo> detailVoList;

    public String getRefundPayName() {
        return refundPayName;
    }

    public void setRefundPayName(String refundPayName) {
        this.refundPayName = refundPayName;
    }

    public List<OrderDetailVo> getDetailVoList() {
        return detailVoList;
    }

    public void setDetailVoList(List<OrderDetailVo> detailVoList) {
        this.detailVoList = detailVoList;
    }

    public String getDetailIds() {
        return detailIds;
    }

    public void setDetailIds(String detailIds) {
        this.detailIds = detailIds;
    }


    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setOrderId(Long orderId) 
    {
        this.orderId = orderId;
    }

    public Long getOrderId() 
    {
        return orderId;
    }
    public void setRefundType(Integer refundType) 
    {
        this.refundType = refundType;
    }

    public Integer getRefundType() 
    {
        return refundType;
    }
    public void setRefundFlag(Integer refundFlag) 
    {
        this.refundFlag = refundFlag;
    }

    public Integer getRefundFlag() 
    {
        return refundFlag;
    }
    public void setRefundStatus(Integer refundStatus) 
    {
        this.refundStatus = refundStatus;
    }

    public Integer getRefundStatus() 
    {
        return refundStatus;
    }
    public void setRefundTotalMoney(BigDecimal refundTotalMoney) 
    {
        this.refundTotalMoney = refundTotalMoney;
    }

    public BigDecimal getRefundTotalMoney() 
    {
        return refundTotalMoney;
    }
    public void setRefundReason(String refundReason) 
    {
        this.refundReason = refundReason;
    }

    public String getRefundReason() 
    {
        return refundReason;
    }
    public void setCreator(Long creator) 
    {
        this.creator = creator;
    }

    public Long getCreator() 
    {
        return creator;
    }
    public void setOrderNo(String orderNo) 
    {
        this.orderNo = orderNo;
    }

    public String getOrderNo() 
    {
        return orderNo;
    }
    public void setRefundWay(Integer refundWay) 
    {
        this.refundWay = refundWay;
    }

    public Integer getRefundWay() 
    {
        return refundWay;
    }
    public void setRefundDemo(String refundDemo) 
    {
        this.refundDemo = refundDemo;
    }

    public String getRefundDemo() 
    {
        return refundDemo;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("orderId", getOrderId())
            .append("refundType", getRefundType())
            .append("refundFlag", getRefundFlag())
            .append("refundStatus", getRefundStatus())
            .append("refundTotalMoney", getRefundTotalMoney())
            .append("refundReason", getRefundReason())
            .append("creator", getCreator())
            .append("createTime", getCreateTime())
            .append("orderNo", getOrderNo())
            .append("refundWay", getRefundWay())
            .append("refundDemo", getRefundDemo())
            .toString();
    }
}
